Nimble, Quick and Focussed

By | Uncategorised | No Comments

The work we’re doing for the LM TOM Innovation Council is going well and getting noticed. Yesterday, the tomsupports.london website profiled Paul Richmond of Price Forbes, who had this to say:

What do you consider to be the most exciting InsurTech business today?

I deal with a number of technology vendors that are looking to deal with changes that I’m sure most of the market will be facing.

One firm, in particular, that stands out is WhiteSpace Software. This firm is really nimble, has a great attitude to innovation, is quick to produce a proof of concept and always focusses on quicker, easier transactions for the market.

Read the profile of Paul Richmond.

From Word to iPad

By | Uncategorised | No Comments

Brokers tell us that Microsoft Word is still the primary tool for drafting policies. We built an add-in for Microsoft Word to make their lives easier. The add-in analyses a document, identifies Market Reform Contract headings and spots variables such as amounts and dates. It then uploads that to our trading platform where the policy can be discussed easily with an underwriter.

Word Screenshot

Our add-in identifies MRC headings and variables like figures, dates and percentages

 

iPad Screenshot

The contract viewed on an iPad, ready for sharing with underwriters

Testable code shared between C# and Swift

By | Uncategorised | No Comments

We developed an idiom for writing tests in Swift which can be pasted into C# for running. It needs one search-and-replace, but that’s it. If you’re wondering “why?” you’re probably not a programmer. The need was to be able to establish that a Windows app written in C# does exactly the same thing as an iOS app written in Swift. That way we can guarantee compatibility and inter-operability of a hybrid system working across the two platforms.

For the programmer-folks in the audience, here’s some code:

    func testShowToLeadUnderwriterSuccess() {
        beBroker();
        var contract = makeContract( Status.NotFinalised, 
            makeBuyer().channel, makeBroker().channel );
        var opResult = contract.showToLeadUnderwriter( makeUnderwriter() );
        XCTAssertTrue( opResult.result );
        XCTAssertEqual( 3, count(contract.channels) );
        XCTAssertEqual( toString(Status.QuotationRequest), contract.status );
    }

We pick up the test functions from Swift and paste them into a suitable class in C#. We then search for fund and replace it with [TestMethod] public void and we’re done. Back into the red-green-refactor TDD cycle.

Our recommendations are:

  • use semi-colons in Swift
  • use var instead of let, and ignore the Swift complaints
  • write lots of functions in the base class, like beBroker() and makeContract() above
  • tell Swift not to require named arguments for the test functions
  • implement equivalent XCTAssert functions in C#
  • use parameter list functions: Swift’s string… and C#’s params string[]
  • be patient with the compile and run time in Swift – it will get there in the end

 

A python ate my brackets

By | Uncategorised | No Comments

Every programmer should have a scripting language to hand. Yes, the big system may be compiled and ingeniously installed, but there are day to day tasks which should be edit and run, edit and run.

Working on Macs, with Couchbase as a database, we needed a scripted way of creating test data. Then we could quickly refine the logic and push a better document. When Rohit suggested using Python, my reaction was yes, let’s give it a go.

It worked a treat. I’m reeling from a language without curly brackets, but I will get over that. I changed my mind from uploading the files to writing them locally (for a later batch upload) and Rohit was able to comment out a line, add a file naming convention and run it again. How many thousand new documents did I want?

def generateRandomClaim(claimType, push):
    surname = Randomizer.pickFrom(surnames)
    firstName = ""
    if Randomizer.oneChanceIn(2):
        firstName = Randomizer.pickFrom(femaleFirstNames)
    else:
        firstName = Randomizer.pickFrom(maleFirstNames)
    os.system("python RandomClaimGenerator.py " + claimType + " " + firstName + " " + surname + " " + push)

Test Coverage in Swift

By | Uncategorised | No Comments

We’re using the Xcode unit testing framework, and then gathering our test coverage statistics. It’s a great encouragement to see 100% coverage of the code you’re writing. Personally, I like to see the results big and bold, so I use the Slather tool to see them as a web page, alongside Apple’s too-cool-by-half understated bar graph.

Slather020616TestCoverage020616

On being accepted by the AppStore

By | Blog post | No Comments

Our first version of the Argenta ReportCentre app was rejected by Apple. The reason was issue 11.1 : Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected

We re-worked the app to connect to a public Couchbase database and download demonstration data. We added an upfront “Connect” button for Argenta’s staff and clients to use. That was enough for Apple – the app was live on the AppStore within just a couple of days.

Profiteroles and Tuiles

By | Blog post | No Comments

Last Tuesday, we learned to make profiteroles, tuiles, artisanal chocolates and griottine teardrops.

ADCAllSmiles(Left to right) Claire Stembridge, Marcus Broome, Amélie Le Bail, Andrzej Trybulski, Lynda Mettouchi, Pierre Henry, Tekka Suzuki (his head obscured by…), Kevin Guillamond, Dermot McLaughlin.

 

The end result

ADCEndResult

  • Tuiles
  • Artisanal chocolates
  • Profiteroles with a praline filling
  • Chocolate and griottine cherry teardrops