Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Posters of Your GitHub Contributions (commitprint.com)
235 points by aarondf on Feb 2, 2017 | hide | past | web | favorite | 76 comments

I think the site is nice - it's clean and directly to the point. No huge hero and no click-throughs to get to the meat of your project. Prices for your posters seem entirely reasonable.

Tangent: I don't understand the fascination with one's own commit heatmap (or any other commit heatmap for that matter). Maybe it seems a bit too self-congratulatory? Vain? I don't know quite what it is, but it rubs me the wrong way and I wouldn't be interested in putting something up like that in my home or office. Maybe because it implies quantity over quality? Whatever the reason, your poster project is nice regardless of whether or not I would buy one.

They way I look at it, its not about how many big dots you have, it tells the story of your time on that project.

I'd love to get this for my team after a major release.

"Ah heres when the whole site went down one Saturday"

"This was when we left for the week long offsite"

"Here is where we released and had to make a bunch of hotfixes but then look here we rarely had that problem after..."

A team commit heatmap would be great for the office tho...

In that case, I think it'd be more interesting to throw it up on a large monitor and have it update every day.

That's a great idea

> or any other commit heatmap for that matter

The problem with heatmaps and how they are currently used by popular tools, is they only provide novelty metrics. That is, metrics that are interesting to look at and nothing more.

Commit heatmaps are actually quite useful for answering a lot of questions, if used properly.

Here's an example, that shows how they can be used to help you navigate to the first commit.


They can be used to provide visual aid, to show how frequently certain files are modified.


This is pretty interesting, but I don't know how useful it would be for me. Part of why I feel that way would be just because I don't have those use cases.

I guess part of it is I don't use GitHub as a UI to my repos either. When I want to find this information out I go exploring with log/blame.

The heatmaps and the graphs in general, or more to help you orient yourself, when having to deal with a lot of information. They make it very easy to view activity across multiple files, branches and repos at once.

For me personally, I mainly stick with the "Changes tree", which I prefer to use over log/blame. I'm particular not a fan of using blame, if I need to trace the history for a file, since it can get disorienting. I use what I've dubbed as rapid diffing, which makes it easier to see how a file evolved. Here's an example.


The second example is quite nice, I think.

But the first one will only work for the first commit, you can't really pinpoint any other one. Using a heatmap for that is probably even overkill.

> you can't really pinpoint any other one

Yeah the heatmap only really shines when it's sparse, as the noise can be too much. The heatmap is intended to be used as a secondary visual aid. What I normally recommend, is for people to use the line chart first, to help select larger swaths of time. And if you need to, use the heatmap to help you drill further. Below is an example of what I mean.


There are still a lot of ways to improve the heatmap by using animation and other tricks, but I don't have the time to experiment with these ideas.

Many technical writers use GitHub to write books so this makes it into the record of one's dedication to the 'streak' of consistent work. Nice history of how something (book, app version 1.0) was produced.

Yeah I think it's a sense of accomplishment. You worked on something really hard and seeing data to reflect that is fun.

That said posting it on a wall to say "Hey look what I've done" its a bit much for me. But I would defintely buy a poster for my engineering team, that would fantastic!

Purely bragging rights.

Hey yall, looks like it's being hugged to death right now... I'm trying to keep up!

Hey, great work!

Similar to my project https://commits.io

Shoot me an email (ortuna AT gmail) if you want to compare notes. I've done a lot of work on how to get those generation times down.

Cool service! I had fun playing with the generator but have no intention of ordering a poster.

Recommendation: Allow users to generate an image and either share it on social media, or embed it in their blog. This way you at least get promotional value out of customers who do not intend to buy.

I would love to order a poster but I just cannot get over the whole -- exposing my teams private code to a 3rd party thing. Any chance you have a hosted version of this?

You could always write a script that walks the real commits of your repo and generates fake commits in a public repo with the same timestamps but no meaningful changes or commit messages.

Not yet, waiting for Github to add some fine tune permissions that would ease a lot of worry. You could always create a GIST with exactly what you're comfortable with.

Hi! Love your site. Always wondered, is it making any money?

it's doing well ;) but is equal to the time I put in.

Awesome, thanks ortuna! Definitely will do.

Queues are seriously backing up. Sorry about this!

My username wasn't found. Can you document and share the remedy to this? Might be a good source for scaling issues when posting to HN.

Renders are split out into their own queue now, so those should work pretty quickly. I'm having issues getting all the GH history, so please be patient on that. Sorry!

Can you set up an "email when its ready" feature?

Very cool! Simple and you even thought of a way to earn some money with it. Hope this kind of creativity gets rewarded!

Spoiler alert, it was ActiveRecord.

Not kidding.

Post definitely forthcoming!

What part of your process is the bottle neck? Are you rendering the posters server side?

From the page...

    [...] because I'm rendering actual JPGs server-side so that the prints will be identical to the previews. I could probably do it much faster if I did it all client-side with SVGs, but I went with what I already knew. Maybe v2.0 will be more awesome.

Thanks, I didn't see that.

Turns out every part of my process is the bottleneck, ha.

I'm fetching the user's history from GH, which is working OK at best right now, and also rendering them server side.

So... 0 for 2.

That's okay though. Only way to learn is by getting something out there. You're way ahead of the game compared to most people dealing with scaling issues first hand :)

Keep up the good work!

Thanks winslow. I appreciate you saying that

lambda would be a good way of scaling this without improving the architecture otherwise :)

Cool project! Quick suggestion: Ditch the "Update preview" button and immediately update the preview after you make new choices.

Is there a way to get these for a repo? I'd love order a couple for my teams. Thanks!

Very cool. I think there's a lot of focus on code quality and organization and shit; sometimes it's important to remember you built something! You should be proud of yourself.

It makes me sad to see that people actively contribute to the implicit "open source = Github" assumption. Open Source has always been successful because there was more than just a single distributor for almost anything.

I hope I'll see a new rise of decentralized solutions. For now I'm frightened of the monopolism here.

I don't see this as assuming that open source is only Github, its just a matter of practicality. If you want to build a tool that interacts with git repos it is easier to use the Github API than it is to deal with bare git repos, SVN repos, and other random open source projects distributed as tarballs, etc.

I speak from experience, having built a crawler and search engine that extracts changelogs from open source projects on Github, parses them, and provides an API for changelogs. [1] I probably never would have built this project if the only thing that had been available to me was bare git repos. It's the github API that makes this search engine possible.

The side effect of the Github "monopoly" is that Github can afford to provide a decent API that makes it possible to do things that simply aren't feasible if you are facing a non standard collection of bare git, svn, mecurial, etc repos.

[1] https://changelogs.md/

GitHub is so strongly associated with Open Source right now for a few reasons.

First, git is decentralized by default. GitHub has very little secret sauce here; most, if not all, of their cool git tricks are actually pushed upstream into the git client to benefit everybody. For remote management, I can run `git init --bare` in any directory on any ol' ssh box I want and then set it up as a remote and get the same exact `git push` experience. Or use any of the strategies that git supports for interacting with remotes.

So GitHub chose a great decentralized tool as their foundation, and then got the community UX right. There's easy permissions management, easy SSH key management and instructions, issue and PR tracking, easily-accessed discussion, etc. GitHub is 95% about community and 5% about easy repo management, IMO.

That said, they're no longer the only player in town. They're the most universally understood, but you can easily set up a GitLab CE server on your own hardware if you want the same thing for free, but there are management costs associated with that.

I think the other critical reason GitHub is associated with open source software is that, after all, it's 100% free for open source software. You get all the above features for free if you don't discriminate about who can see and clone your code. GitLab will give you free private repos, but in my opinion I think GitHub takes the better stance here for the Open Source world. "You want free tools? You have to either pay up or share."

git is decentralized, but the most common workflow makes it basically a slightly better SVN. There is always one authoritative upstream repo, and everyone just pushes to that. Really, GitHub + git is better than SVN in only two ways: better merge tools to make branches cheaper, and local branches. Almost everything else could already be done with SVN (or similar) before. git's decentralized nature is only really used by the Linux kernel developers AFAIK.

You can commit without pushing, and generally have full freedom to rearrange your repository locally. So no, lots of us make use of Git’s decentralization all the time, even without mailing patches.

> GitHub has very little secret sauce here

GitHub's secret sauce was to use dark patterns meant to accelerate the network effect working in their favor.


1. Quietly kill patches as the main currency in open source

2. Redefine "pull request" to mean "the thing that happens when you click a certain button on github.com"

The end result is that collaborating with GitHub-hosted projects is made arbitrarily difficult unless you're also hosting your work on GitHub.

How did they "kill patches"?

Well, when is the last time you (or anyone else) ever submitted a patch through GitHub? Answer: never. Check out the lengths the Git project itself has to go through to work around the busted GitHub-style pull request mechanism GitHub invented.

Well, that seems to me to be because they provided an alternative to patches that works a lot better for me and the projects I contribute to, and I can't blame them for it.

> That said, they're no longer the only player in town.

They never were. Before github everything was on sourceforge.

As far as I understand, Github is mainly American, meaning that US export restrictions apply, right? I'm not sure how that fits the "freedom" point.

Unless I'm mistaken, I don't think he/she mentions open source at all?

At the same time it's better to have a working project and having the satisfaction of shipping than going in circles trying to appease everyones definitions of open source.

The whole thing is about "show your Github contributions", further cementing Github's monopolism, right?

I think it's more "I've created a way to make your Github contributions into a poster." I understand where you are coming from, but it's a tad bit reactionary, don't you think?

If I created a website for you to turn a user's facebook activity statistics into a T-Shirt I would hope that you don't think it is contributing to facebook's monopolism of social media.

Maybe a way to also include Bitbucket statistics (or something) would be nice. I don't know. Sorry, I might indeed have been quite harsh.

This comment is very off-topic.

Nowhere does this project say that "GitHub = open source" and I'm not sure why you're harping on it here. In fact, this project can even include private (ie. non-open source) commits, making your point even more irrelevant.

On the other hand, I find Github extremely useful. 90% of the time when I'm looking for a library, Github's search box is the first place I go.

Then if I can't find it that way, I begrudgingly head over to Google.

Love the look of the site!

How are you getting these printed and shipped? Do you do it yourself or consume a 3rd party service?

I like the idea a lot! I wish there were several ways of visualizing activity so that you might get a more accurate representation of achievement, although that feedback is for github. I like the logo - it's a simple design that represents that product well.

Thanks humming! I'm glad you like the logo, it just came to me right before I launched. Very pleased with how it turned out.

Pretty cool idea. When I type in my Github name (queicherius) and choose any year however, "february" shows up twice: http://i.imgur.com/MrI9r6a.png

Sorry about that, should be fixed now. Was having some pretty serious issues yesterday.

This would be so much cooler if it was wall-mounted art and 365 LEDs.

I'm not big into electronics, but can't you adjust LED's brightness by changing what voltage is sent to them?

(It's usually done with a PWM, not voltage. That's easier to regulate.)

This could be done with PWM (pulse width modulation).

A made a similar project for Android smartphones "Github Contributions Widget". https://play.google.com/store/apps/details?id=by.aleks.ghcwi... The app is open source https://github.com/xRoker/GHCWidget

If you just want a little widget to display and not necessarily a poster, there is also this: https://github.com/jrm2k6/contwidgetor (gets your bitbucket contributions as well).

Awesome site and idea! I hope you figure out how to work your bottlenecks out

What about private repos. Will this work?

From the FAQ on the site:

"I don't have a lot of public commits, can I use private commits?

You can, actually. You'll have to make that change on github.com though. Go to your profile and scroll down until you see your contribution graph and click "contribution settings" to change it."

Looks like the site says that it will, and it has some instructions for getting private repos to work.

I guess the site might be overloaded, I tried with my github but it's just spinning.

Cool stuff!

blatant gyroscope rip off. nice effort in hacking it together though.

Link to which Gyroscope you mean? It's a very general search term and I haven't come across a service named that otherwise.

In any case, I doubt so, or it doesn't even matter. Nothing in the world is really so unique, and especially app ideas on the internet. It's not a new idea to make an infographic style poster from data, so who's ripping off whom?

I think it may be https://gyrosco.pe/store. Either way, not entirely sure ripoff is the correct assumption.

Googling for gyroscope poster or gyroscope github doesn't produce anything relevant in the first few results. I would suggest "rip off" is too strong a word, especially when the thing it's supposed to be ripping off is apparently not well known and therefore possibly unknown to the creator of this tool.

I too tried to do some searching for "gyroscope" after you called my little app a "blatant rip off". I found absolutely nothing, so thanks to others for adding some links.

I guess everything is a matter of perspective.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact