(Not commenting on the site/feature directly just the idea.)
As a person who wrote code for a year every day working on a game in my free time, you'd be surprised how much progress you make even if only putting in a bit of time every day. Or maybe you wouldn't be surprised. After all, 365 days * 0.5 hours / (40 hour/week work week) = 4.5 work weeks. So about a month of "full time work" that you would never have if you didn't invest in that half hour daily. Pretty neat. Good way to master a skill in your free time even if you're one of those people that says "I don't have time."
Due to context switching costs, I'd think the progress made working 30 minutes a day would be nowhere close to what you would achieve if you did it all at once. For me, I think my output would be closer to 2 weeks worth of work than 4.5...
OTOH full work days involve fatigue, which you won't run into only working for 30 minutes. And there's a good amount of context switching that goes on at the workplace as well.
I think this is where planning and leaving notes for yourself comes into play. If you can spend one hour long span planning out what you're going to work on for the next 6 days of 30 minute sprints, it should lessen the time loss due to context switching. That's what I found worked best during my year of writing code every day. I would sit down on a weekend day and plan out a bunch of bite sized tasks. That way I could look at the list, pick something that could be done in 30 minutes without much thinking and get right to the task of writing code.
(That being said, I didn't restrict myself to 30 minute sprints during that year and there were certainly things I did that either could not be done in 30 minute sprints or would require quite a bit of extra planning to be able to be broken up into subtasks and done in 30 minute sprints.)
If you don't do it in-between your other work you can avoid the cost of context switching. And consider that you spend a lot more time refining your ideas (whether consciously or not), so I bet you'll be a lot more focussed during those 30 minute sprints than on average during your work days.
Nice work! It would be cool if you pulled my commits for the day and showed them in the log. I experimented with a similar idea (https://github.com/samertm/githubstreaks), and it's a lot of fun to see a detailed breakdown of your commits and the commits your friends make.
Thanks for the comment! I've got a plan of integrating with Github, just trying to decide how it should work as I wouldn't want my commits from work showing up which are on the same github account.
Do you think it'd work well if I implemented something to allow picking a commit for a daily entry or would you prefer more automatic tracking?
When I looked into this, I used the GitHub Events API to get all of the events the user took[0], and then filtered by Push Events. Push Events consist of commits to a repo, and I used the GetCommit Repository API [1] to get more metadata for the commit.
If you save the ETag from the Events API and pass it back in your next request, you'll get a 304 response if the data hasn't changed and it won't hit your request limit.
You'll want to poll the user's events periodically, and store that data in a database. It's too slow to ping GitHub's API every time, because there isn't a single API that provides exactly what you need.
Check out FetchRecentCommits[2] for how I hit the GitHub API, and UpdateUserCommits[3] and CreateCommit[4] for how I extract the data from the commit and store it in the database.
Good luck! Keep me updated, my username is in my profile :)
I think automatic tracking of public repositories for now would do ok ( if you can check on that). I wouldn't do "picking commits", because people mostly won't do that.
Thanks for the feedback, glad you said tracking public repositories as that's something I thought might work well as mostly peoples work is in private repos
If you would go for private repos, i think it would be harder.
Public git repositories on github are an alternative for your resume ( that's good for your project). But private repositories could also mean gitlab integration and etc.. :)
I honestly don't know what work is involved, but if you integrate with Github, please do the same for BitBucket. BB gets less visibility because most people use it to keep their repositories private, but it's used by a huge amount of people for real work and personal projects.
I was just collating some of the feedback from this and right next to Github integration I wrote BB integration :) I use BB a lot as well personally to keep repos private. Thanks for the feedback
Sounds like a good idea, need to figure out how the management of that would work though without being a PITA ;) Thanks for the idea, much appreciated!
Awesome work. But I would prefer log-in/registration with own email/password combo. I hate 3rd party logins.
One alternative would be, and what worked for me, is a simple old school pomodoro tracker:
1: get pomodoro app/timer like http://tomato-timer.com/
2: aim for 3 or so pomodoro sessions/day for your project or new thing you want to do or to learn
3: profit
Nice thing about pomodoro technique is that the distraction is already included. You focus 25 minutes and then have 5 minutes distraction time. It adds up for motivation if you know that you can have a break after a short perdiod of time.
Hey, thanks for the feedback it's much appreciated!
Already planning to add the email/password login option as it's been requested quite a few times.
I've thought about app/widget/thing for doing time tracking and pomodoro style but decided against it right at the beginning, I'll keep thinking about it and see what feedback I get from others regarding it.
There isn't too many features/bug fixes that I can do in less than one hour (even w/out distractions), so in my case it should be a 60 to 90 minutes session. Also, what I do to get me 'in the zone' is a ritual: close email/social apps. Silence phones. Close my eyes for a few seconds planning what I have to do. Start coding. Maybe you should find a way to implement guided rituals before the session starts? Just a thought.
Hey thanks for your feedback, you can of course do longer than half an hour, just I think half an hour is a short enough time to squeeze in and it keeps up a good habit :)
Thanks for the details about getting in the zone, might well include some tips on the site later to help people get in the zone quickly to get the most out of their session
It would be cool if there was a complementary app that goes like this:
It teaches you using a hands-on approach about coding/algorithms/sys admin from beginner to expert level. Then it offers you a bunch of roadmaps on what exercise you should do next to build on the current skills you have.
Even more it would be cool that it would find the weak spots on your current skills and allow you to go back to previous exercises to improve that skill.
Hey, that's a cool idea but probably a little ambitious one for now.
I've got a plan of adding themes as a more social element where bunch of users can sign up to a themed week during which they would all work on improving a particular skill whilst sharing helpful resources and being able to help/ask questions from each other.
That sounds interesting. You might want to consider increasing the time frame to a month to 3 months. IMHO,a week is too short to go deep into any topic.
Thanks that's a good point, might add different lengths so for themes that are more of an overview of a topic or a shallow topic it could be a week or two and for more in-depth topics several months
Hey thanks for the feedback! I was wondering actually whether it was intuitive or not, I guess not then ;) Would you have any recommendations on how to make it easier to use?
Easy to understand UI, imho. It'd be nice to be able to add notes for days in the past, in case you forgot to fill in one day. Also, is it possible to edit a topic once it's created?
Hey, You'll be able to add notes for previous days but not for days prior to when you signed up, sorry I don't think this is particularly clear at the moment and maybe I should remove this restriction from the UI.
Currently it's not possible to edit topics, high up on the todo list though! :D Thanks for your feedback, muchly appreciated!
Hm, no email/password login? Is there any technical reason behind that? I might be an oldschooler, but I find websites, that require 3rd party credentials off-putting.
Sorry no technical reason just haven't got around to it yet, didn't know what the general preference was now, will add it shortly. Thanks for the feedback
Just to give an alternative point of view - I prefer third-party login whenever it's available, so the current flow works for me. I'm not saying you shouldn't add first-party login, just don't get rid of third-party login in the process.
I don't say that 3rd party logins are bad and should be removed, I just hate when website assumes that "everyone has Facebook, Google, GitHub, <insert some other trendy site here> etc." We fought long and hard to get rid of vendor locks as much as possible, why go back to these dark times?
My problem is that I can easily create account and store it in my Keepass, however when there are only 3rd party logins I have no idea which third party login I chose to use for a specific site. This sometimes means trying to authenticate with multiple third party vendors and sometimes accidentally creating a new account as I logged in with a wrong one.
As a person who wrote code for a year every day working on a game in my free time, you'd be surprised how much progress you make even if only putting in a bit of time every day. Or maybe you wouldn't be surprised. After all, 365 days * 0.5 hours / (40 hour/week work week) = 4.5 work weeks. So about a month of "full time work" that you would never have if you didn't invest in that half hour daily. Pretty neat. Good way to master a skill in your free time even if you're one of those people that says "I don't have time."
After completing the 365 day streak I even did a little informal "AMA" on reddit where me and some other people suggested their tips on staying productive when coding every day: (https://www.reddit.com/r/gamedev/comments/37i77h/ive_been_wr...)