Mix and match version control
LShift’s standard version control platform these days is Mercurial, but just before we adopted it, I started a project using Trac and Subversion, mostly because that’s what Trac does out of the box....
View ArticleEvServer, Introduction: The tale of a forgotten feature
Long long time ago there was a WSGI spec. This document described a lot of interesting stuff. Between other very important paragraphs you could find a hidden gem: [...] applications will usually return...
View Articlesimple build tool
I started using Maven at a company where we had 60+ Java projects all with their own individual Ant build file. Each build file was different and each project was structured completely differently....
View Articlemercurial-server 0.8 released
mercurial-server home page mercurial-server gives your developers remote read/write access to centralized Mercurial repositories using SSH public key authentication; it provides convenient and...
View ArticleWebGAC: Minding your .NET Dependencies
Managing binary dependencies in .NET can be a complicated task. For small projects, checking the dependencies into source control tends to work just fine. So does requesting that all developers have...
View ArticleInstalling Visual Studio AddIns for All Users
Whilst writing the installer for WebGAC, I was faced with some challenges trying to make the Add-In install for all users on the system. The MSDN documentation for Add-In registration generally...
View ArticleDebian build-depends metapackages
When I’m doing development on an existing software project, and especially when I’m trying to bugfix something with a Debian package, I find that I install random packages I need to rebuild something,...
View ArticleUsing Debian Multiarch for cross-compiling
I’ve recently acquired a Raspberry Pi, and was considering using it for SNES emulation. However, as it turns out that Zsnes is x86-only, and that Snes9x got kicked out of Debian a while back for having...
View ArticleMaking (Kindle) books from blogs
Admittedly, more and more of them are doing this already, but this is a slightly more DIY option… So, you’d like some more reading material for your Kindle. Maybe you’re going away for the holidays, or...
View ArticleUsing GitHub for planning
An important part of delivering software is knowing how long it will take to deliver some piece of functionality. Today we will see a small GitHub hack to help control estimation. It’s all very well...
View ArticleContinuous Integration for Github Pull Requests with Teamcity
Most developers with an interest in open source software these days have seen the Github interface for handling pull requests, and relatedly, Travis CI’s support for pull requests. And so we thought...
View Articlecloverage – a code coverage tool for clojure
A couple years ago we presented a couple design sketches for a code coverage tool for clojure. More recently we spent some time researching whether existing code coverage tools would suffice for our...
View ArticleJust In Time Development
Since the dark ages of yesteryear Squeak has had a very interesting button in its Debugger – “create”. Today we’re going to teach it a new trick. Suppose you write a test, showing how Foo s bar . Your...
View ArticleThree approaches to ambiguous grammars
We have many tools in our parsing toolbox. Today let’s look at how three different parsing techniques handle ambiguity caused by choice. First, yacc. yacc handles ambiguities in your grammar with, if...
View ArticleComments are important
Nat Pryce wrote a fun little library the other day called code-words. It rips your source into words, and turns the words into a wordcloud. In short, a visual representation of the most common words in...
View ArticleEnhancing peer review through GitHub
You love GitHub. Of course you do. You love peer review. You especially love sending a pull request back asking for nits to be picked. So when your submitter claims to have addressed your concerns, how...
View ArticleManaging multiple GitHub repositories
We all know GitHub is a fantastic way to collaborate on software. It has a fairly basic issue tracker, but it serves most purposes well enough. But if your code base is spread across several...
View ArticleDocumenting an HTTP API with Swagger
I recently tried out Swagger, for documenting an HTTP API. The big win with Swagger is that it provides a sweet HTML UI to browse your API docs and experiment with sending requests and viewing...
View ArticleGrunt uglify file specs
I struggled a bit finding relevant examples of Gruntfile configuration for Uglify, so having solved a few specific problems myself, here’s what I came up with. This is just a snippet from the whole...
View ArticleGetting back into front-end web development
I’ve been working on a small SPA (Single Page Application) – just HTML, CSS and JavaScript statically served and doing its thing entirely in the browser. I learned a great deal throughout the project,...
View Article