Computing stuff tied to the physical world

My software

In Software on Sep 7, 2013 at 00:01

Most of the software I write, and most of what I’ve written in the past, has gradually been making its way into GitHub. It’s a fantastic free resource for managing code (with no risk of lock-in – ever – since all git history gets copied), and it’s becoming more and more effective at collaboration as well, with a superb issue tracker and excellent searching and statistics facilities. Over the years, each developer home page has evolved into an excellent intro on what he/she has been up to lately:

Screen Shot 2013-09-03 at 14.58.03

As of recently, I’ve turned things up to 11 by giving everyone who submits a pull request full developer access (it’s a manual process, but effortless). As a result, if you submit a pull request, then whenever I merge it into the official repository, I’ll also add you as developer so that you no longer have to fork to get changes in. Just clone the original repo, and push changes back in.

It may sound crazy, but it really isn’t (and it’s not my idea, although I forgot where I first read about it). The point being that contributors are scarce, and good contributors who actually help take a project forward are scarce as gold. Not because there aren’t any, but because few people take the time to actually contribute and participate in a project created by someone else (shame on me for often being like that!). Time is the new scarce resource, so helping others become more productive by not having to go through the pull-request tango to add and tweak stuff really makes sense to me. Let alone giving real credit to people, by not only accepting their gifts but also giving back visibility and responsibility.

I don’t think there is a risk. Every serious developer will check with the team members before committing a contentious or disruptive change, and even then, all it takes is to create a branch and do the work there (while still letting others see what it’s about).

The other change is that I recently discovered the DocumentUp site, which can generate a very nice front page for any project on GitHub, from just its README page – like this one.

This is so convenient that I’ve set up a website with pointers for most of my code:

Screen Shot 2013-09-03 at 13.45.33

There! That URL ought to be fairly easy to remember :)

Another site (service?) which presents (remixes?) GitHub issues in a neat way is waffle.io:

Screen Shot 2013-09-06 at 00.16.16

There’s a lot more going on with GitHub. Did you know that all issue trackers support live chat? Just keep an issue page open, and you’ll see new comments come in – in real time! Perfect for a quick back-and-forth discussion about some intricate problem. Adding images like screen shots is equally easy: just drag and drop the image into the discussion page.

Did you know that each GitHub project can manage releases, either as is or with detailed information per release? Either way, you get a list of versioned ZIP and TAR archives, simply by adding public tags in Git. And even without tagged releases, there’s always a “Download ZIP” link on the right side of each project page, so you don’t even have to install or use git at all to obtain the latest version of that code.

Screen Shot 2013-09-03 at 15.23.37

There are some 4 million public projects on GitHub. Not all exciting, but tons of them are!

  1. Talking of GitHub … :-) We’ve just put up something we’ve been working on…

    Called Node-RED, we hope it may be of interest to the whole area of “Internet of Things”.

    Written in node.js – designed to be used for “simple” hook this event to that with some processing in between, and hopefully flexible enough for others to add things as they want.

    Any feedback greatly appreciated. Thanks

    • Wow, looks like a fantastic design tool!

    • Like many other GitHub projects, it suffers from the lack of a simple description of what it actually does, on the home page…

      However, once I downloaded it and started to figure it out (I think) it looks interesting! This is a graphical programming environment for JavaScript running under Node, itself written in JavaScript and running under Node. My home data logging/control system runs on a Tridium (now Honeywell) JACE, which uses a Java-based graphical programming environment. However, this runs on a PC, not on the JACE itself. Vintage ~2004. Somewhat clunky by comparison, but it does have the useful ability to modify the JACE program without loosing any state data or logs – except for properties of deleted objects, of course. I’ve been looking around for a replacement technology, and Node on a BeagleBone Black is my current favourite: NodeRed makes it even more attractive.

      You’re both based at Hursley? The guy next door is a recently-retired IBM’er. Looks like we might be neighbours!

      A graphical programming environment for Data-Intensive Real-Time applications? DIRTy Pictures!

      Sorry about that…

Comments are closed.