GitHub celebrates 10 million repositories

GitHub is celebrating 10 million repositories milestone.  While it might seem like a lot, it looks like they are only picking up the pace, with more than half – over 5.5 million repositories – created just this year.   Here is a handy graphic of how it goes:

10 million repos on GitHub

Check their blog post for more details and for links to some cool repos.

Personally, I wish GitHub all best and hope that they will continue doing what they are doing.  With more than 50 repositories across my own projects, the day job, and the things I do with friends, I can’t imagine my life without GitHub.  I use it on a daily basis and wish that more people that I interact with do so as well.

Happy 10MIL, GitHub! You are awesome!

Ekisto – visualizing online habitats

Slashdot is linking to Ekisto – a project to visualize online communities like if they were cities.  So far there are only GitHub, StackOverflow and Friendfeed (really? Friendfeed?).  I’ve seen plenty of data visualization, especially for GitHub, but I have to say that this is one of the most interesting ones ever.

github visualization

 

Here is a quote from the About page that explains how it works:

Ekisto comes from ekistics, the science of human settlements.

Ekisto is an interactive visualization of three online communities: StackOverflow, Github and Friendfeed. Ekisto tries to imagine and map our online habitats using graph algorithms and the city as a metaphor.

A graph layout algorithm arranges users in 2D space based on their similarity. Cosine similarity is computed based on the users’ network (Friendfeed), collaborate, watch, fork and follow relationships (Github), or based on the tags of posts contributed by users (StackOverflow). The height of each user represents the normalized value of the user’s Pagerank (Github, Friendfeed) or their reputation points (StackOverflow).

Global .gitignore

gitignore is a very handy tool for ignoring unnecessary files in the project.   Most large projects have .gitignore file included.  Most small projects would benefit from one too.  However, working as a developer on a variety of projects, it’s often difficult to add your own rules to all .gitignore files around.  And that’s exactly what I wanted.

I’m using Vim editor for all my coding needs, and I wanted to add Vim swap file and backup file to all .gitignore files.  That sounded like annoying, so instead I looked around for a global gitignore solution.  As always, StackOverflow has an answer for everything.  There is a way to disable extra files in Vim, but there is an even better way to have your own global .gitignore.  Here is how to do it:

  1. Edit .gitconfig file in your home folder, and add excludesfile=~/.gitignore line to the core section.
  2. Create .gitignore file in your home folder with whatever rules you desire.

Once that is done, all your projects will ignore the files matching the rules.  If you are not sure which rules to start with, borrow one of the gitignore files from this GitHub project.

GitHub error pages

I’ve praised GitHub many a time in posts on this blog and in numerous conversations over a pint.  Today, I found yet another reason to do so – GitHub error pages.  We’ve all seen a parallax 404 by now, right?

github 404

Today was the first time I looked into the source code of the page.  It greets one with the following words right under the HTML 5 Doctype definition:

Hello future GitHubber! I bet you’re here to remove those nasty inline styles,
DRY up these templates and make ’em nice and re-usable, right?

Please, don’t. https://github.com/styleguide/templates/2.0

The link provides even more goodness.  The list of other (all?) GitHub error templates is provided with explanation of which one fires when, as well as an insightful list of rules that GitHub uses for building error pages.  Have a look:

If you’re visiting from the internet, feel free to learn from our style. This is a guide we use for our own apps internally at GitHub. We encourage you to set up one that works for your own team.

Error pages should be built such that they require zero scripting, zero javascript, and zero dependency on anything whatsoever. That means static HTML with inline CSS and base64-encoded images.

The following are banned from every error page:

  • All <script> tags with an src attribute.
  • All JavaScript that loads external data.
  • All <link> tags.
  • All <img> tags with an src pointing to a URL.

It’s things like that that keep me coming back and looking for more web development elegance all around GitHub.

WordPress plugin repositories

WPTavern covers an interesting early stage development of WordPress plugin installations directly from GitHub source code repositories.  Here is a quick video on how it works:

[youtube=http://www.youtube.com/watch?v=jCV_EomzXIU]

That got me thinking.

WordPress.org provides an API for plugins checks and updates.  WordPress software allows a plugin to overwrite the location of the repository.  But it still doesn’t seem to cover all the bases.  What if I want to install plugins from several repositories now?  Say – the official WordPress plugin repository, GitHub, and my personal or corporate repository.  There might be a way, but it seems tricky and non-standard.

I’ll look more into it, of course, but I think there should be a standardized way to setup WordPress plugins (or even themes) repository, and add it to a list of repositories that WordPress checks for updates.  Something along the lines of YUM and APT in Linux.