technology from back to front

Blog: latest posts

iOS Enterprise Program: Distribution certificates

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 distribute via the app store, but you can distribute to devices belonging to your organisation directly (“in-house”), without passing through Apple’s approval process, and without having to deal with ad-hoc provisioning.

A client of ours has an Enterprise Account and I was tasked with using their account to distribute the app for testing. To do this I needed to create a Distribution certificate (as opposed to a Development certificate). However, the option was greyed-out – disabled. What to do?
Read more…

by
Martin Eden
on
08/05/13

Emacs versus Vim

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.

by
Frank Shearar
on
28/04/13

Mutant Refactoring powers

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 the process here.

Read more…

by
Ceri Storey
on

How readable are your comments?

You’ve done the Right Thing and written extensive class comments, docstrings and the like. But are they really readable?

Read more…

by
Frank Shearar
on
27/04/13

Auto-generating LShift blog posts

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.

Read more…

by
John Wright
on
26/04/13

Fallacies of a Monad

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.

Our first local policy at LShift although we’ve had a Meteor is necessary to distinguish this point though, we want to and hence won’t discuss. Empty is the dark ages trying to wind position when your job to generate input data API calls to understand this blog post. Hello, add our socket buffer, etc.

I’m glad I have addressed your submitter claims to work out what if we just the two commits! You especially love peer review. Perhaps it’s about the motherboard. Success!

Read more…

by
John Wright
on

Application-level change logging with EntityFramework

We have been developing Daylight, which is a records management system for Freedom from Torture, a charity dedicated to the treatment and rehabilitation of survivors of torture. Due to the sensitive nature of the data being recorded, Freedom from Torture wanted a way of tracking every change that was made to records.

The application uses Entity Framework as an ORM layer over an SQL database. One option would have been to use database triggers to log changes. However, we wanted to track changes not in terms of the database model, but in terms of the application model. This allows us to then easily query the log at a later point using the same application model and make sense of it. We can directly re-hydrate the logs back into C# objects in different recorded states in a strongly typed manner.

The solution is to override the database context object’s SaveChanges method. However, inside that statement is quite a lot of complexity! I have spent some time over the last few weeks extracting the logging code from the client application and the result is FrameLog, an open source logging library for Entity Framework.
Read more…

by
Martin Eden
on
22/04/13

Debugging a segfaulting binary without debug symbols

We mostly use memory-safe high level languages at LShift (although we’ve done the odd embedded systems dev job), but sometimes a bit of systems programming knowhow still comes handy. I had the misfortune of a pure, i.e. no-JNI java program segfaulting on me with Oracle Java 7 in a non-reproducible fashion. I wanted to find out what exactly the program was up to at the point of the crash. Helpfully, on fatal errors java will generate a slightly obscurely named file hs_err_pid${pid}.log where ${pid} is the pid your deceased java process run under (the hs comes from HotSpot, in case you wonder). This file contains amongst other things a VM stacktrace which will tell you were in C-land things went wrong.

But let’s jump straight to the chase and open the core dump file like in gdb like so:

Read more…

by
alexander
on
31/03/13

Fixing github part 2

The fact that github displays all dates in GMT-7 has annoyed me to no end since forever. Based on Frank’s github-differ, described in his last blog post, I wrote an extension that fixes it.

Without further ado, here it is: https://github.com/jaceklach/github-your-time

by
Jacek Lach
on
28/03/13

Enhancing 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 do you check? You could walk the commits. You could diff the entire pull request against master. If only you could diff the HEAD of the pull request against the original state of the pull request, letting you check just the new set of commits…

With github-differ you can!

Simply add this tiny extension[1] to your Chrome, and it will decorate each commit in GitHub’s Commits tab. Pick any two commits, and the extension will redirect you to a page showing the comparison of those two commits! Job done!

[1]The JavaScript involved is so small that it should be trivial to port this to FireFox’s GreaseMonkey framework.

by
Frank Shearar
on
27/03/13

« Newer Posts Older Posts »

Search

Categories

Feeds

Archives

2000-14 LShift Ltd, 1st Floor, Hoxton Point, 6 Rufus Street, London, N1 6PE, UK+44 (0)20 7729 7060   Contact us