May 29, 2011

Lark Internals: an introduction

As development of Lark continues, I thought it would be useful to review some of the design decisions and implementation details of the Lark codebase. These posts will be technical in places, but will hopefully be of interest if you’re following along with Lark’s development.

At an architectural level Lark comprises three core logical foundations:

The Framework

The Framework handles the core research management features, including experimental description, data, results, material and methods definitions, along with workflow control. It’s basically a simple domain specific language for building and managing research projects.

The Larkive

A Lark project (as defined by its materials, methods, data andexperiments) is an encapsulated ‘unit’ of research. Whilst it may havedefined external dependencies, a project can be packaged into a singlearchive, shared, reproduced, extended and digitally signed. I’m calling this package the ‘larkive’. I thank you.

The Platform

The server facilitates sharing, collaboration, signing and scaling Larkive packages. It runs as a separate process, either for a single individual, or for a larger research group or institution.

Implementation

At a more technical level, it won’t surprise many people that Lark is implemented in Ruby! It’s packaged as a simple, single gem, with a small library of classes for the Foundation, the Larkive and Runners for the command line interface. The Platform server is also part of the gem and runs on Sinatra with data persistance handled by DataMapper.

The Platform is Rack compliant, so will run on any Rack server, and can be unpacked and pushed to a hosting platform such as Heroku without any effort.

Getting involved

Each of these foundation components are shaping up nicely, with a pretty clear path to what is needed for the initial open source release. If you would like to contribute ahead of the release, drop me a line.

(this post is based on a recent message to the Lark Core mailing list)

May 28, 2011

Framework and Platform taster

Lark is really starting to shape up now, ahead of the initial open source release.

The Framework

The Lark Framework aims to make it easy to build scientific research projects. It manages research materials, methods, data, experimental runs and result data in a simple, elegant way. I’ll have many more details in the coming weeks, but as a quick taster, the command line API looks like this:

The Platform

To help organise collections of projects and share materials, methods and experimental results Lark has a built in research platform. This can run as a personal lightweight server on a laptop, or as a shared resource across entire research groups and institutions.

Removing the activation energy of getting started with Lark is a key tenet of the project (I’ll be writing more about why that is important in another post), and that is reflected in the smooth ‘on ramp’ to the server platform.

Starting the server is as simple as typing:

lark server

And firing up a browser:

Lark Server welcome

And finally…

Overally, everything is coming together really well so far. The initial release will set both the technical direction and the philosophy of Lark development going forward, so it’s well worth taking time at this stage to lay firm foundations.

Apr 18, 2011

First!

Very happy to be able to welcome everyone to the new Lark mailing lists.

Lark Song is for general discussion around Lark; Lark Core is a technical list for the development team.

Feel free to follow along at whatever level you’re comfortable.

Apr 18, 2011

On Quora

A little more context, background and info on Lark, in answer to the ‘What is Lark?’ question on Quora:

http://www.quora.com/What-is-Lark

Plenty more to come over the next few days.

Apr 17, 2011

Introducing Lark

Lark is an Accelerated Research Kernel.

The aim of Lark is to make it easy to manage research projects, from the laboratory bench to the computational grid. It is a framework for organising materials, methods, hypotheses and results, and a platform for sharing, collaboration, remixing and reuse.

Lark is currently under active development. If you’d like to follow along you can find us on Twitter, or just drop us an email.

We also have a new home page: larksong.org.

The Lark team are actively looking for new and existing research workflows to help in the development of our framework and platform tools. If you have something in mind, please do get in touch.

About