I think the most important thing is that you must want to do it. Without an innate desire, it would require inhuman willpower to maintain such a streak. That said, it does get easier over time. Once you get into the habit of doing at least a little work every day, the streak comes pretty naturally.
I say "want" and not "like" because wanting and liking are not the same thing. I usually find myself frustrated and annoyed by code, but for some reason I keep coming back. I think most programmers are weird in that respect. As Douglas Crockford says:
I think there has to be something seriously wrong with you in order to do this work. A normal person, once they’ve looked into the abyss, will say, “I’m done. This is stupid. I’m going to do something else.” But not us, ‘cause there’s something really wrong with us.[1]
I hate the implication that busywork is somehow less valuable than other kinds of work. Much of software development isn't intellectually rigorous. Many deficiencies in OSS could be resolved by people willing to do the same kind of gruntwork that you linked to here. I see this and think major props to @sferik for working hard to maintain public code, even when it's not glamorous.
I'm not familiar with this developer or that project, but what I inferred is that perhaps he deliberately spread out these relatively minor commits in order to keep his streak going. Of course, I have no idea if that's true. Busy work can be valuable, but purposefully spreading out minor commits makes the streak statistic less impressive (especially considering how easy it would be to automate).
You certainly work on tons of great open source stuff, and I don't want to diminish the value of that at all, but for somebody else to hold up your streak as a shining example of the commit-every-day mindset is a bit in the grey area, as far as I'm concerned.
I've not seen anybody disagree with that. But running `bundle update && git commit -a && git push` falls into what I, for myself, consider a grey area on the "I've committed today" scale. I say this as someone who also tries to maintain a GitHub streak.
You, and sferik, and each other GitHub user is totally free to disagree. I don't own the streak system.
It's gotta be done and someone has to do it. Whether it counts as coding or not, it's still a process that someone has to focus on and take time out of their day to complete.
If this is "frivolous" then I sure wish I were a more frivolous coder. Someone has to do the "frivolous" work of keeping up to date on security patches so our apps are locked down. Someone has to make "frivolous" corrections of bad indentation so code is more readable for the rest of us. Someone has to write all those "frivolous" READMEs so people like me can get up and running.
It shouldn't require any human intervention to watch for changes and bump a version number. In fact, I guess, it didn't. Personally, I'd tolerate repetitive work for several days, maybe even a week, then I'd certainly hack a script and after several days of observation return only on script's "hey, I'm confused, please help me" notification.
For me this gamification works. Yes I do commits I feel more proud of than others. Yes, I 'cheat' and create tons of projects which makes it easy to find stuff to commit. And yes, keeping the streak might become the thing.
The point is that it (for me) Github streak has made me much more productive and due to continious practice, better and more accomplished as a developer. I _do_ stuff more than ever and only wish I had been doing it more years ago.
Yay for (coding)streaks!
And anybody reaching 100+ is a hero in my book. (My records is 68 days but it is going DOWN this month.)
Mine ( https://github.com/sartak/ ) is currently a 558 day streak. I'm studying Japanese, so I've been committing the new words I learn (at least one every day!) to my "vocabulary" repo. I started a while before GitHub even started tracking streaks.
I had a telephone interview this week where the interviewer asked why I hadn't committed anything recently on GitHub. This wasn't true, I had pushed something to GitHub that day. But it turns out GitHub uses your git config email to determine your streak - which was different to my GitHub email - and so my commits don't show up. I didn't really care, but since potential employers may consider it I have now fixed the issue. According to [1]:
If your previous commits used the correct email, they will start to link after you add the email to your account. However, it may take some time for the old data to fall out of the server's cache before this happens.
I misread that as 'recruiter' (cold-calling you) and got pretty enraged:
"Oh, hey euoia this is ___ from KPFI Recruitment Services. I noticed your linked-in profile, which is a really great match for an opportunity we have at a major company in the boxed snack industry - I was just wondering why you hadn't committed to GitHub this week?"
According to http://git.io/top when it last updated last week, it states michalbe currently has the longest streak. They have a streak of 561 days as of today according to their profile: https://github.com/michalbe
But sadly that list is for people with more than a certain number of followers. I'm not on it (https://github.com/waywardmonkeys) despite having over 2000 contributions and a 417 day streak. :(
I can beat it. Give me about 5 minutes and git filter my commits. Not to take away from the "accomplishment" ( achievement? ) of work, but its easy to create and post date commits to beat this "record".
I did this last year and reached 235 days (only ending because I got married, I think that is a valid excuse), but to be honest, it started to become a distraction because my competitive side took over and I started going out of my way to make commits when I had actually important things I needed to be getting done.
I've maintained a 417 day streak despite taking multiple holidays / vacations. My overall rule for what I do is to always make at least a little progress each day. Even if that means I go and fix some grammar or spelling in docs, or file some bugs, merge pull requests. Maintaining a streak doesn't have to mean 8 hours of work each day. :)
Anyway, I think that just keeping yourself committed to "do something" every day it's not really a vacation. Sorry, but I find this nonsensical and bad example...
One thing I've learned from having been married to my wife is that people have hugely disparate views of what constitutes a vacation.
For her it's the more standard lounge-at-the-beach vacations. For me it's always been the feeling that I'm not compelled to do anything by anyone other than myself. I don't want time bound obligations.
I went to ireland for five weeks or so, and toured by bike, then did some hitchhiking and general wandering around. I did a lot of reading, and writing, and some learning/math. Every day I had some random downtime and would have been totally content fixing a small spelling mistake or two in some docs, if I had been into programming then.
All that to just say, relaxation and contentment are pretty specifically personal, and I could see how it wouldn't be a hassle at all, especially if you've got some good momentum going and all it takes to keep it is to spend a few minutes committing a grammar fix. Ymmv of course, but that's just my two cents.
Don't you ever just want to take an entire day to relax? Just sit around drinking beer, eating pizza, and watching TV (or some variation of that)? I think I am the exact opposite, since I can barely work 35 hours a week without mentally clocking out.
Is anyone aware of a way to pull the current/longest streak for a GitHub user, besides parsing their page's HTML? I'm aware that I can get the data used to make the dot chart from https://github.com/users/sferik/contributions_calendar_data but that always gives 366 points.
Previously, I thought the Current and Longest Streak counts were dynamically calculated from the given JSON data, but this shows that's not the case: it looks like GitHub is inserting those counts right into the HTML on their end.
I can scrape those counts out of the HTML if I need to, but that feels pretty hacky, and I'd prefer to pull or calculate them in some other way if it's at all possible.
I agree with ggreer [0] that there must be a want to commit everyday. sferik, good job in doing what you want, when you want.
When I saw this I was immediately reminded of the recently front page "Your 60-Hour Work Week is Not a Badge of Honour" [1]. I don't think that each week for a streak like this requires 60-hours. I know that a streak like this wouldn't be good for me, and I personally don't think it'd be good for most people.
People trying to figure out who to hire - I'd screencap that all green Contributions box on my resume and call it a day. The picture is even him typing at a terminal. That's great.
i just hope this is as far as it goes w/r/t broadcasting these sort of version-control-metrics. I would hate to see a "who hasn't done a damn thing all week" list.
I love that he's even coding in his picture, probably because he wouldn't have a recent one without a computer in his lap. lol ... when I got 40-50 days I usually feel rather accomplished, this guy makes me feel like a slacker
I think the most important thing is that you must want to do it. Without an innate desire, it would require inhuman willpower to maintain such a streak. That said, it does get easier over time. Once you get into the habit of doing at least a little work every day, the streak comes pretty naturally.
I say "want" and not "like" because wanting and liking are not the same thing. I usually find myself frustrated and annoyed by code, but for some reason I keep coming back. I think most programmers are weird in that respect. As Douglas Crockford says:
I think there has to be something seriously wrong with you in order to do this work. A normal person, once they’ve looked into the abyss, will say, “I’m done. This is stupid. I’m going to do something else.” But not us, ‘cause there’s something really wrong with us.[1]
1. http://www.youtube.com/watch?v=taaEzHI9xyY#t=26m50s