Join 3,558 readers in helping fund MetaFilter (Hide)


would rather be commenting than pushing code.
May 28, 2013 9:23 PM   Subscribe

Do you contribute to open source projects on github? Want to know how you're doing? Check your Open Source Report Card.
posted by empath (40 comments total) 15 users marked this as a favorite

 
Tried five usernames including my own. All said not enough information to provide anything. Sadness.
posted by xmutex at 9:37 PM on May 28, 2013 [1 favorite]


It's interesting how wrong this is on a handful of points, and sort of depressing how it reflects the fact that 99% of my work isn't public, but there's some interesting stuff in there all the same.
posted by brennen at 9:37 PM on May 28, 2013


No info for me. All my stuff is private. Because it's for work. Because I need money to eat food and live.

Glad to see another metric for passing utterly arbitrary judgement on developers in interviews though!
posted by drjimmy11 at 9:49 PM on May 28, 2013 [6 favorites]


A fair amount of my open-source contribution is done on work time (because it can be more cost-effective for us to adapt some open-source stuff to our needs and get the patches back into mainline than it would be to reinvent the wheel ourselves or to find a closed-source vendor who would be responsive to our needs). Lots of those projects don't use github, though.

But if you're not an open-source-contributey person, I don't see why you should feel judged by this, any more than a musician should feel judged by not having any github stats listed.

Other github statswankery though: Probability of acceptance of pull requests, or, Your pull request won't be accepted
posted by hattifattener at 10:13 PM on May 28, 2013


My pull was accepted.
posted by migurski at 11:02 PM on May 28, 2013 [14 favorites]


This is quite fun, but it does get some things wrong, like, uh, I don't live in the US, and I really really don't do perl. And yeah, it's oddly judgmental.
posted by Zarkonnen at 11:41 PM on May 28, 2013


I just don't get it. It claims I'm in the top 20 percent of most active Ruby users, but even during the six months I was a technical writer on my company's core developer team, I wasn't super prolific with source documentation. Now I'm a managing editor and all my commits are to a repo full of Markdown when I even make them.

Also, I don't "work best in the late afternoon." That's just when I make/push my commits so I can work from home the next day without schlepping my laptop home. (Learning squash was like showing a caveman fire ... I gibbered.)

But hey, arbitrary and strange credibility! Next time an engineer says, "you're the one who whiteboarded Hiera at the OpenStack party? I didn't know there were marketing people who could do that," I can point to this excellent summary of my awesomeness to further amaze and baffle.

It's right, though, that I'm totally a friend of puppetlabs.
posted by mph at 12:06 AM on May 29, 2013 [1 favorite]


Interesting. I know for a fact that my code is on quite a lot of Android devices, including anything with CyanogenMod 10 on it, but it can't find my username. Oh well, I was never in it for the fame anyway.
posted by walrus at 12:07 AM on May 29, 2013


yeah, it also seems to not be pulling stats back that far? Like for me it isn't showing any of the new repos I made or followed..

But over all kinda neat. It is nice to contribute code, even though it can be painful.
posted by jonbro at 1:22 AM on May 29, 2013


I don't live in the US, and I really really don't do perl.

"alex_skazat is a heavy hitting Perl expert (one of the top 33% most active Perl users)"



AWWW YEAH! Bring on the Perl jobs!


crickets.
posted by alex_skazat at 2:00 AM on May 29, 2013 [1 favorite]


No really? Perl Jobs? Hello? Come home, I need to eat.
posted by alex_skazat at 2:00 AM on May 29, 2013 [1 favorite]


Unfortunately, we don't have enough information to write a report card
So now that I actually have the free time to jump in and contribute to some open source projects, how would I go about finding one to work on? I tried taking a look at the Firefox bug list a while ago, but everything seems too complicated to jump in at this point, it feels like I need to find a project that's still early in its life-cycle.
posted by xqwzts at 3:16 AM on May 29, 2013


I just don't get it. It claims I'm in the top 20 percent of most active Ruby users, but even during the six months I was a technical writer on my company's core developer team, I wasn't super prolific with source documentation.
The "languages this repo uses" part of GitHub is a bit flaky, and the report card appears to just look at the largest single language for a project (the last pie chart says "..where the main language is listed as...").

For instance, my main open-source repo is by any reasonable definition a Python project, with a C extension as a lesser part of the repo, but my report card has me as a C developer (in the top 12%!) because their SLOC analysis came up with 56.5% C, 43.5% Python. In the first place I don't trust that analysis, because for a long time it said something like 25% Objective-C and there is none. Even then, it's a bit off to say that contributions to a repo that's basically 50/50 C and Python are all C. But GitHub doesn't break down commits by individual file-type so what are you gonna do.

The GitHub data set is an amazing record of developer activity, this is a nifty-if-flawed demo of that.
posted by bgribble at 3:37 AM on May 29, 2013


I'm a trend setting clojure expert who loves pushing code!

yay me

(and it says I am "friends" with the open source umbrella project that my company runs for our clojure cms/orm/mvc web dev thing)
posted by idiopath at 4:31 AM on May 29, 2013


As an old MS centric business developer, github frightens and confuses me. One of those big hairy beasts I can never really wrap my head around.

Are there github mentors out there? that teach you how to build it into your workflow? Without all the supremely offputting 'tude? (as exhibited by this project, none of you fine people)
posted by DigDoug at 5:37 AM on May 29, 2013 [1 favorite]


I'm a trend setting Javascripter who loves pushing code... a Friday hacker I seem to work best in the mid-afternoon.
posted by urbanwhaleshark at 6:02 AM on May 29, 2013


Are there github mentors out there? that teach you how to build it into your workflow?
Misc tips:

Keep in mind that Git the VCS and Github the website are two different things.

Google "effective git workflow" and you get a lot of wannabe mentors for Git the VCS.

On github.com, if you click the "Explore" link at the top of the page, you can see a selection of active repositories. I found that just drilling into some active projects that were busy using Git in their workflows was a pretty good tutorial about how to integrate git-the-vcs with the services that Github offers (issue tracker, wiki, and comment/review system through commit discussions). If they're doing it right, you shouldn't need to know anything about the project before diving in.

Start small. You can use Git much like SVN or another VCS if you want to, just remember that "commit" is local. You have to "push" to send your code to another repository.

Remember that git was designed to deal with the specific needs of the Linux kernel development process. It's powerful, but not perfect, and is at its best when dealing with large codebases with many developers who are not well coordinated with each other.

If you are used to GUI tools, my understanding is that the Git GUI tools for Windows sort of suck. I am a Linux commandline nerd so what do I know.
posted by bgribble at 6:13 AM on May 29, 2013 [1 favorite]


Worth noting: You don't need to write code to contribute to open source.

Just as much as the OSS community needs code writers, it needs people who can identify and file bug reports, people who can write documentation, and people who can organize all that volunteer labor.

If you want an easy entrance to the community, go check out a hack day. The National Day of Civic Hacking is this weekend, and I can say firsthand that my event needs non-tech people just as much, if not more than we need tech people.

Github's Git client makes it ridiculously easy for newbs to commit small snippets of code to projects, and I've found that most maintainers are very sympathetic to new coders. Git can seem a bit overwhelming at first, but it's really quite simple at its core.

A few months ago, I committed some Python code (basically, my first Python code) to a Sublime Text extension that I use frequently, and the repo's maintainer gave me some awesome tips for how to improve that code. For whatever reason, Github's made the open source community so, so, so much more mellow, and it's amazing.

Oh, and if you're on Github, you should add your account to your MeFi profile.
posted by schmod at 6:37 AM on May 29, 2013 [1 favorite]


bgribble: "If you are used to GUI tools, my understanding is that the Git GUI tools for Windows sort of suck."

I find them to be mostly not-terrible, as long as you've got both the official Git GUI and TortoiseGit installed. They're not great, but I still prefer the Git GUI over the command line when I'm making commits (however, it's pretty terrible at resolving conflicts). The GitHub for Windows client is more limited in its scope, but is extremely easy to use, and has a very slick UI.

Oh, and every Windows developer should have GOW installed. It's really quite nice to have native versions of wget, grep, tail, and diff available from the command line.
posted by schmod at 6:42 AM on May 29, 2013 [3 favorites]


Linus seems to speak only one programming language: C. Maybe it's about time to branch out a bit.
posted by tapesonthefloor at 6:56 AM on May 29, 2013


Unfortunately, we don't have enough information to write a report card for rms.
Sorry!

posted by rlk at 7:07 AM on May 29, 2013 [2 favorites]


The graphical tools that github have for osx and windows are pretty awesome however, and are one of the primary reasons I use github for my open source stuff rather than say, bitbucket or hosting my own 'origin' git stores. Of course, you can also use them purely for local git repos that never leave your box and are purely for version control, but it's handy to be able to have somewhere internet facing that you can use to sync up various copies of your code, or have multiple devs work on.

It's got me pegged dead on as a javascript/coffeescript guy. Node.js 4EVAR. Though I am eyeing up python.

Are there github mentors out there? that teach you how to build it into your workflow?

Not github specifically, but I've found this to be a good guide to handling git branching workflow in general for a production project. Primary work goes on in a development branch, with periodic merges with the master branch - the master branch is used for production, so in effect pushes to master are pushes to production. If you're a sole coder, just push everything to github for reference/syncing between machines. If you work with others, you have to test your code merges cleanly back into the current state of development in your local branch before you can sync it to github. If something breaks in a commit to the development branch, no biggie - just fix it before you next merge to master. If you break master by accident (it happens) you can either revert master, or push a hotfix to master and development. You can also throw away commits you've made to your local copy before you sync to origin.

Branching is so trivial with git though, it makes a lot of sense to spin off a feature branch whenever you work on an atomic bit of coding (a refactor, a new module etc etc) and merge it back into development when you're done. It's even trivial to have several feature branches on the go at once, either your own or spread across multiple developers, getting merged when they're completed.

Github comes in handy, because while you can easily just push code directly from peer-to-peer with git, it's useful to have a 'canonical' repo that everyone treats as the master source for the purposes of what state the code is at. Github fits that role nicely, and has the wiki and bugtracker to go with it. Open source repos are free; you can have as many as you like. If you want private repos, you can pay for them on github, though there are cheaper options, or setup your own private git repo host on any box with SSH, git and some storage on it.
posted by ArkhanJG at 7:26 AM on May 29, 2013 [1 favorite]


> But hey, arbitrary and strange credibility! Next time an engineer says, "you're the one who whiteboarded Hiera at the OpenStack party? I didn't know there were marketing people who could do that," I can point to this excellent summary of my awesomeness to further amaze and baffle.

Mine says I'm an Expert as well, which is kind of hilarious, since my code is mostly mock ups and proof of concept work.

Interestingly, one can put an entire companies profile in there, and it is treated the same, and shows some interesting mappings as a result.
posted by mrzarquon at 7:58 AM on May 29, 2013


Never really got the point of github. As Linus has said, why would you trust a third party with your authoritative repo, they have the power to rewrite history.
posted by Joe Chip at 8:12 AM on May 29, 2013


Never really got the point of github.

Ease of backup - if your laptop blows up, it's simple to reinstate your code base.

Sharing - one of the key features of open source is to be able to learn from and re-use code from others.
posted by walrus at 9:05 AM on May 29, 2013


Ease of administration, too... maintaining your own servers for every. little. thing. is just not scalable.
posted by sonic meat machine at 9:11 AM on May 29, 2013 [1 favorite]


> Never really got the point of github.

Do you do open-source development? Where do you park your repos?

If you have some small idea that you need for your own purposes but others might to, where do you put it up?


> As Linus has said, why would you trust a third party with your authoritative repo, they have the power to rewrite history.

Uh - do I really care?

Why would they bother to change my open-source software? I have multiple copies of the net results, and so do other people. I could lose my history but that's not a big deal.

So here's me!

"Tom is a trend setting Pythonista (one of the top 1% most active Python users) who loves pushing code." Thanks!

"Tom is an early-week worker who seems to work best in the morning." One out of two ain't bad. I think they believe I'm working in GMT - not sure why.
posted by lupus_yonderboy at 9:14 AM on May 29, 2013 [1 favorite]


ArkhanJG's link is exactly the document we use as a workflow for pi3d.
posted by lupus_yonderboy at 9:27 AM on May 29, 2013


At some point I learned C++. Weird.
posted by yerfatma at 10:14 AM on May 29, 2013


Joe, the main benefit is the ease of setup with Git and Github. For my own personal projects, it’s typically a one-step deal (git init) to start using revision control in an arbitrary directory, and then a later two-step deal to create a GH repository and push to it, if I want. With older services based on CVS or SVN, it was typically necessary to go public first, set up a repository, then begin working. Kinda backwards for throwaway code.

As far as rewriting history, I don’t think that’s a concern. Everyone with a copy of a Git repo will have their own copies, and the content-based commit hash structure used by Git helps ensure that history stays put. Trust in third parties is needed if you want to benefit from their input on public projects. If you don't care, file:///var/git is a great alternative.
posted by migurski at 10:16 AM on May 29, 2013 [1 favorite]


Upon reflection, I have mixed feelings about this. I've been trying to give back more this year, but the truth is more than 50% of my contributions to public repos on Github are probably still from the day I spent figuring out how to include sub-directories in a Python installable package. It must have taken 40 tries (no idea why I needed to commit each one) and it turned out I'd figured it out around attempt #20 but had been checking the wrong directory for changes. So if this site really worked it would look more like:
Tom is an all-around moron who spreads his screw ups throughout the day to avoid permanently creasing his forehead from slamming it into his monitor. Unless he doesn't have a monitor, which would be the one acceptable reason for the quality of the work.
posted by yerfatma at 11:00 AM on May 29, 2013 [1 favorite]


Where do you park your repos?

on my server. What, you don't have one?
posted by Mars Saxman at 11:21 AM on May 29, 2013


on my server. What, you don't have one?

I do and I have version control running there for things that need to be private to me, but let's not treat this like a binary question. For things that aren't client work, why not stick them on Github or Bitbucket where

• I don't have to worry about administering the server
• I don't have to worry about the server crashing and losing my stuff (one presumes)
• I get free redundancy in case I crash locally
• I get handy UI stuff that is regularly being improved
• Easy team interaction, I don't have to worry about administering credentials for anyone and I can cut them off whenever I need to if I own the repo

I realize most of this (other than the UI stuff) is all available to someone with the time, know-how and patience to manage their own server, but lots of programmers are still struggling with programming, never mind being IT support. Anything that lowers the barriers to entry is a good thing IMHO.
posted by yerfatma at 11:51 AM on May 29, 2013 [1 favorite]


on my server. What, you don't have one?

I actually don't. Not that I couldn't, I certainly have in the past. But, not everyone wants to keep up with all the attendant updates, security concerns, off-site backups, redundant power supplies, monitoring system, air conditioning, physical security and general support work that goes with it. Plus, the cost of an internet connection your ISP won't shut off when they find out you're hosting internet-facing services.

Or by "my server", did you mean you rent shared hosting or a VPS or a dedicated server with managed support services? 'Cause now we're just talking degrees of convenience and trust balanced against how much personal time I want to put into the same sort of thing I get paid for.
posted by mrgoat at 12:13 PM on May 29, 2013


Among the other wonderful things github does, it supports more social coding. Which, if you don't care about, then you won't find github as compelling. But I find the social aspects of coding quite fascinating and useful and I'm glad github is around to help us explore how to make that easier.

xqwzts, a good way to start contributing is to make some small improvement to a project that you personally want--Like schmod enhancing a Sublime Text module he uses a lot. Scratching your own itch is motivating and rewarding.
posted by jjwiseman at 1:43 PM on May 29, 2013 [1 favorite]


As a long-time Pythonista, I was a little baffled and offended to be called a Rubyist by this thing, but then I remembered that I have sent a bunch of patches to homebrew, so I guess I sort of qualify if you squint a little bit.
posted by whir at 2:16 PM on May 29, 2013


Also note that the creator says "for this project, I decided to freeze the scope and only download the event stream for January, February and March 2013."
posted by jjwiseman at 2:26 PM on May 29, 2013


Oh, that explains a lot, jjwiseman. I went on an issue-clearing, docs-enhancing commit rampage in March, just before moving to my new role. So January-March catches me at the peak of my git productivity over the last forever.
posted by mph at 2:33 PM on May 29, 2013


So now that I actually have the free time to jump in and contribute to some open source projects, how would I go about finding one to work on? I tried taking a look at the Firefox bug list a while ago, but everything seems too complicated to jump in at this point, it feels like I need to find a project that's still early in its life-cycle.

Firefox looks like it has "mentored bugs" where a person volunteers to help you get started. Other projects have lists of "little bugs" or "easy bugs" identified as reasonable first steps - check out MediaWiki's list for example. I'd also suggest finding the IRC channel for a project that you're interested in, pop in and say "give me something simple to do!", and people will probably be excited to help you.
posted by dreamyshade at 4:19 PM on May 29, 2013 [1 favorite]


Unfortunately, we don't have enough information to write a report card for rms

Joking, I know. But Richard Stallman, on his "How I do computing" page, states:
My favorite programming languages are Lisp and C. However, since around 1992 I have worked mainly on free software activism, which means I am too busy to do much programming.
I don't think he'd probably touch GitHub if he did. He seems pretty averse to using software/services that aren't 100% open.

As an old MS centric business developer, github frightens and confuses me

Git took me a bit of time to get used to, workflows and all—I banged my head against many walls for submodules in particular. But once I "got it", I can confidently say that there's no other VCS I would personally choose. And I'll only use others' choices begrudgingly. :) The power of a version control system that pivots around ease of branching cannot be overstated.

Anyway, this site is an entertaining jaunt. I'm fortunate enough to get to work on open source projects as my day job, so I spend most of my day on GitHub.

And schmod, I took your advice and linked my GitHub profile.
posted by Brak at 8:50 AM on May 30, 2013 [1 favorite]


« Older Eric Schliesser is collecting some memorable openi...  |  "Idiosyncratic Terrorist Break... Newer »


This thread has been archived and is closed to new comments