Resumable exceptions for separating packages

Frank Shearar wrote “Resumable exceptions form a key component of the Smalltalk infrastructure. They are one of the standard means of communicating along the call stack, much like Common Lisp’s condition system. They can, however, add a “cross layer” dependency.”

Tail calls in functional languages aren’t always a good fit.

Ceri Storey wrote “Recently I’ve started playing with Haskell a little more seriously, and I’ve been toying with the idea of using it to calculate approximated percentiles over streams of numerical data, as found in the histograms from Coda Hale’s well known metrics library. The first step in this process is picking out a representative sample of the…”

Managing multiple GitHub repositories

Frank Shearar wrote “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 repositories, it can be difficult to know how you’re doing, from a management perspective. Octoherder can help with that.”

NuGet: Fetch missing or out of date packages on build

Martin Eden wrote “NuGet is a package manager for the .NET world. At its core is an API that will take a set of assemblies that you are interested in and download any that are new to a specified folder. There is then a Visual Studio plug-in that uses a convention-based approach to adding new packages to your…”

Page objects in Ruby

Ceri Storey wrote “Because “clicking a button” should not exist in your domain language. When we write tests, we want to be able to write them in a way which is relevant to the problem the application (or sub-component) solves, rather than how it is implemented. So, if you get an urge to reimplement natural numbers, then you…”

A Double Fugue in Traits

Frank Shearar wrote “Traits provide a means of composing an object’s functionality out of smaller, simpler parts. Verbs being limited in number, especially good ones, sometimes you want to compose two traits that share names. Today we’re going to look at how to resolve the dispute.”

Testing Ansible playbooks with Vagrant

Frank Shearar wrote “One of the projects here at LShift uses ansible to configure its EC2 machines. I needed to refactor the playbook in a minor way. But of course “refactor” doesn’t just mean “change the code”. It means “change the code (presumably for the better) while preserving behaviour“. I really didn’t want to check the change by…”

By General Sisi (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

iOS Enterprise Program: Distribution certificates

Martin Eden wrote “To develop apps for iOS you need an Apple Developer Account. There is the normal developer program which costs $99/year and allows you to distribute apps publically through the app store. However, there is also the Enterprise account which costs $300/year. With the Enterprise account (which only businesses can apply for) you are unable to…”

Emacs versus Vim

Frank Shearar wrote “Here at LShift we take our programming pretty seriously. Which is why we now warm up properly before discussing important topics like static versus dynamic typing, tabs versus spaces and other such crucial aspects of our craft. An Emacs operator preparing for a discussion with a vim user about text editors.”

Mutant Refactoring powers

Ceri Storey wrote “Occasionally, I’ve found that when doing some refactorings (especially when splitting a class for example), it can be all too easy to include redundant code. Whilst most of the time it’s possible to eliminate that by a combination of careful inspection and keeping the tests green, I’ve found that mutation testing tools can greatly automate…”

Auto-generating LShift blog posts

John Wright wrote “I've often found myself at a loss for blog post topics, so rather than write one myself I decided to let a computer do the heavy lifting! Markov chains offer a neat trick for generating surrealist blog oeuvres. They work by figuring out the probability of one word appearing after another, given a suitable corpus of input material.”

Fallacies of a Monad

John Wright wrote “DSL based templating sucks! This looks a very short beep-like sound card. Let paragraphs rely on a sense of data. Roy recently released my mind: In practice of course, it grew features.”